@ignorenonframefalse

Лабораторная работа №5

Дискреционное разграничение прав в Linux. Исследование влияния дополнительных атрибутов

Кармацкий Н. С. Группа НФИбд-01-21

Российский университет дружбы народов, Москва, Россия

29 Сентября 2024

Цель работы

Изучение механизмов изменения идентификаторов, применения SetUID- и Sticky-битов. Получение практических навыков работы в консоли с дополнительными атрибутами. Рассмотрение работы механизма смены идентификатора процессов пользователей, а также влияние бита Sticky на запись и удаление файлов

Теоретическое введение 1

SetUID (SUID) SetUID — это бит, который позволяет пользователям запускать исполняемые файлы с правами владельца этого файла. Это означает, что если файл имеет установленный бит SUID, любой пользователь, запускающий этот файл, будет выполнять его с привилегиями владельца файла, а не с привилегиями своего собственного пользователя. Это часто используется для программ, требующих повышенных прав, например, команда passwd, которая позволяет пользователям изменять свои пароли.

Теоретическое введение 2

Sticky-бит Sticky-бит — это бит, который устанавливается на каталоги и ограничивает возможность удаления файлов в этом каталоге. Если Sticky-бит установлен на каталог, только владелец файла или суперпользователь может удалить или переименовать файлы в этом каталоге. Это полезно для общих каталогов, таких как /tmp, где множество пользователей могут создавать файлы.

Выполнение лабораторной работы

Проверка компилятора

  1. Проверяем наличие компилятора языка C (рис. 1)
Наличие компилятора

Создание программы 1

  1. Создаем отдельный каталог для программ, а так же файл с 1 первой программой (рис. 2)
Создание файлов

Создание программы 2

  1. Заполнение файла (рис. 3)
Листинг программы

Создание программы 3

  1. Компилируем и выполняем программу, а так же выполним системуню программму id. В результате получем из нашей программы те же данные, что и из id, но только в более коротком варианте (рис. 4)
Запуск программы

Создание программы 4

  1. Усложняем программу, добавив вывод действительных идентификторов, так же назовем ее simpleid2 (рис. 5)
Усложненная программа

Создание программы 5

  1. Компилируем новую програаму и получаем дополнительные сведения в отличии от первоначальной программы (рис. 6)
Компиляция нового файла

Изменение прав доступа 1

  1. С помощью chown изменяю владельца файла на суперпользователя, с помощью chmod изменяю права доступа (рис. 7)
Новые права

Далее запускаем программу получаем все значения равными 0, так как выполняем все от прав суперпользователя

Изменение прав доступа 2

  1. Пробуем сменить атрибуты относительно SetGID-бита, получаем все точно тоже самое (рис. 8)
Другие права доступа

Создание новой программы 1

  1. Создадим программу readfile.c, которая будет читать файлы. Откпомпилируем ее, а так же поменяем владельца у файла и изменим права так, чтобы только суперпользователь мог прочитать его, а guest не мог (рис. 10)
Листинг программы

Создание новой программы 2

Компиляция и изменение в правах файла

Проверка работоспобности программы с новыми правами 1

  1. Проверка новых прав доступа для guest, как видим ничего не получается сделать (рис. 11)
Отказано в доступе

Проверка работоспобности программы с новыми правами 2

пытаемся считать файл с помошью программмы, но получае отказ в доступе (рис. 12)

Отказано в доступе при работе программы

Мы запретили всем, кроме суперпользователя испольнять или читать файл, поэтому никто и не может выполнить никакое действие с файлом

Исследование Sticky-бита 1

  1. Выясним ,установлен ли атрибут Sticky на директории /tmp. От имени пользователя guest создаем файл file01.txt с тестом text в каталоге /tmp. Так же просмотрим артирубы файла и разрешим чтение и запись для категории пользователей “все остальные” (рис. 13)
Создание и настройка файла

Исследование Sticky-бита 2

  1. Попробуем прочитать, записать и удалить файл от имени пользователя guest2. Получаем отказ в доступе везде, кроме чтения файла (рис. 14)
Попытка чтения и записи в файл от guest2

Исследование Sticky-бита 3

  1. Снимем атрибут Sticky с директории /tmp и повторим действия, описанные в пункте 12. (рис. 15)
Снятие атрибута Sticky с директории /tmp

Исследование Sticky-бита 4

Попробуем снова выполнить все те же действия. Получаем доступ к файлу от guest2 (рис. 16)

Попытка чтения и записи в файл от guest2

Исследование Sticky-бита 5

  1. Вернем первоначальные атрибуты директории /tmp(рис. 17)
Восстановление атрибутов

Выводы

Изучили механизмы изменения идентификаторов, применения SetUID- и Sticky-битов. Полученили практическик навыкои работы в консоли с дополнительными атрибутами. Рассмотрели работу механизма смены идентификатора процессов пользователей, а также влияние бита Sticky на запись и удаление файлов